package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseVo;
import lombok.Data;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 合同信息;1:EPC;2:EMC;3:分包;对象 erp_contract_project_info
 * @author wutao
 * @date 2024-05-31
 */
@TableName ("erp_contract_project_info")
@ApiModel (value = "erp_contract_project_info对象", description = "合同信息;1:EPC;2:EMC;3:分包;")
@Data
public class ContractProjectEntity extends BaseVo {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId (value = "id", type = IdType.INPUT)
    private String id;

    /**
     * 客户Id,关联客户
     */
    @ApiModelProperty ("客户Id,关联客户")
    @TableField ("customer_id")
    @Excel (name = "客户Id,关联客户")
    private String customerId;

    /**
     * 项目Id
     */
    @ApiModelProperty ("项目Id")
    @TableField ("project_id")
    @Excel (name = "项目Id")
    private String projectId;

    /**
     * 投标Id,关联投标基础信息
     */
    @ApiModelProperty ("投标Id,关联投标基础信息")
    @TableField ("tender_id")
    @Excel (name = "投标Id,关联投标基础信息")
    private String tenderId;

    /**
     * 合同名称
     */
    @ApiModelProperty ("合同名称")
    @TableField ("contract_name")
    @Excel (name = "合同名称")
    private String contractName;

    /**
     * 合同编号
     */
    @ApiModelProperty ("合同编号")
    @TableField ("contract_number")
    @Excel (name = "合同编号")
    private String contractNumber;

    /**
     * 签订日期
     */
    @ApiModelProperty ("签订日期")
    @TableField ("sign_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signTime;

    /**
     * 开始时间
     */
    @TableField ( "begin_time" )
    @JsonFormat (pattern = "yyyy-MM-dd")
    private Date beginTime;

    /**
     * 结束时间
     */
    @TableField ( "end_time" )
    @JsonFormat (pattern = "yyyy-MM-dd")
    private Date endTime;

    /**
     * 合同金额
     */
    @ApiModelProperty ("合同金额")
    @TableField ("money")
    @Excel (name = "合同金额")
    private String money;

    /**
     * 合同金额大写
     */
    @ApiModelProperty ("合同金额大写")
    @TableField ("money_upper")
    @Excel (name = "合同金额大写")
    private String moneyUpper;

    /**
     * 税率
     */
    @ApiModelProperty ("税率")
    @TableField ("tax_rate")
    @Excel (name = "税率")
    private String taxRate;

    /**
     * 不含税金额
     */
    @ApiModelProperty ("不含税金额")
    @TableField ("tax_money")
    @Excel (name = "不含税金额")
    private String taxMoney;

    /**
     * 甲方名称,文本,可以是公司可以是个人
     */
    @ApiModelProperty ("甲方名称,文本,可以是公司可以是个人")
    @TableField ("party_a")
    @Excel (name = "甲方名称,文本,可以是公司可以是个人")
    private String partyA;

    /**
     * 甲方联系人名称
     */
    @ApiModelProperty ("甲方联系人名称")
    @TableField ("party_a_contact_name")
    @Excel (name = "甲方联系人名称")
    private String partyAContactName;

    /**
     * 甲方联系电话
     */
    @ApiModelProperty ("甲方联系电话")
    @TableField ("party_a_tel")
    @Excel (name = "甲方联系电话")
    private String partyATel;

    /**
     * 甲方联系邮箱
     */
    @ApiModelProperty ("甲方联系邮箱")
    @TableField ("party_a_email")
    @Excel (name = "甲方联系邮箱")
    private String partyAEmail;

    /**
     * 乙方名称,关联部门表,level为1
     */
    @ApiModelProperty ("乙方名称,关联部门表,level为1")
    @TableField ("party_b")
    @Excel (name = "乙方名称,关联部门表,level为1")
    private String partyB;

    /**
     * 乙方联系人名称
     */
    @ApiModelProperty ("乙方联系人名称")
    @TableField ("party_b_contact_name")
    @Excel (name = "乙方联系人名称")
    private String partyBContactName;

    /**
     * 乙方联系电话
     */
    @ApiModelProperty ("乙方联系电话")
    @TableField ("party_b_tel")
    @Excel (name = "乙方联系电话")
    private String partyBTel;

    /**
     * 乙方联系邮箱
     */
    @ApiModelProperty ("乙方联系邮箱")
    @TableField ("party_b_email")
    @Excel (name = "乙方联系邮箱")
    private String partyBEmail;

    /**
     * 合同执行状态,关联字典
     */
    @ApiModelProperty ("合同执行状态,关联字典")
    @TableField ("status")
    @Excel (name = "合同执行状态,关联字典")
    private String status;

    /**
     * 合同文本内容,关联合同模板
     */
    @ApiModelProperty ("关联合同模板Id")
    @TableField ("contract_temp_id")
    @Excel (name = "关联合同模板Id")
    private String contractTempId;

    /**
     * 合同文本内容,关联合同模板
     */
    @ApiModelProperty ("合同文本内容,关联合同模板")
    @TableField ("contract_content")
    @Excel (name = "合同文本内容,关联合同模板")
    private String contractContent;

    /**
     * 业务员Id,关联用户
     */
    @ApiModelProperty ("业务员Id,关联用户")
    @TableField ("sales_user_id")
    @Excel (name = "业务员Id,关联用户")
    private String salesUserId;

    /**
     * 备注
     */
    @ApiModelProperty ("备注")
    @TableField ("remarks")
    @Excel (name = "备注")
    private String remarks;

    /**
     * 合同类型;1:EPC;2:EMC;3:分包;
     */
    @ApiModelProperty ("合同类型;1:EPC;2:EMC;3:分包;关联字典表")
    @TableField ("type")
    @Excel (name = "合同类型;1:EPC;2:EMC;3:分包;关联字典表")
    private Integer type;

    @ApiModelProperty ("业务type")
    @TableField (exist = false)
    private String businessType;

    @ApiModelProperty ("流程模型id")
    @TableField (exist = false)
    private String modelId;

    @ApiModelProperty ("流程实例id")
    @TableField ("instance_id")
    private String instanceId;

    @ApiModelProperty ("状态")
    @TableField ("state")
    private String state;

    @ApiModelProperty ("创建人Id")
    @TableField ("create_by")
    private String createBy;

    @ApiModelProperty ("创建时间")
    @TableField ("create_time")
    private Date createTime;

    @ApiModelProperty ("更新人Id")
    @TableField ("update_by")
    private String updateBy;

    @ApiModelProperty ("更新时间")
    @TableField ("update_time")
    private Date updateTime;

    /**
     * 是否在用
     */
    @ApiModelProperty ("是否在用")
    @TableField ("is_used")
    @Excel (name = "是否在用")
    private Integer isUsed;

    @TableField (exist = false)
    private String contractTempName;

    @TableField (exist = false)
    private String customerName;

    @TableField (exist = false)
    private String taxRateName;

}
